//
//  StatusViewModel.swift
//  我的微博
//
//  Created by ZhangChao on 15/9/9.
//  Copyright © 2015年 ZhangChao. All rights reserved.
//

import UIKit

// 原创微博的重用id
let statusNormalCellID = "statusNormalCellID"
// 转发微博的重用id
let statusForwardCellID = "statusForwardCellID"

class StatusViewModel: NSObject {
    // 微博数据模型
    var status: Status

    // 头像
    var userIconUrl : NSURL? {
        
        return NSURL(string: status.user?.profile_image_url ?? "")
    }
    
    // 认证类型 -1：没有认证，0，认证用户，2,3,5: 企业认证，220: 达人
    var userVipImage : UIImage? {
        
        switch(status.user?.verified_type ?? -1){
            
            case 0 : return UIImage(named: "avatar_vip")
            
            case 2,3,5 : return UIImage(named: "avatar_enterprise_vip")
            
            case 220 : return UIImage(named: "avatar_grassroot")
            
            default : return nil
        }
    }
    
    // 会员等级
    var userMemberLevel : UIImage?{
        
        if status.user?.mbrank > 0 && status.user?.mbrank < 7{
            
            return UIImage(named: "common_icon_membership_level\(status.user!.mbrank)")
        }
        
        return nil
    }
    
    // 配图Url数组
    var thumbnailUrl : [NSURL]? // 这里不能初始化,必须判断数据模型中有相应的元素再进行初始化,并赋值
    
    init(status:Status){
        self.status = status
        
        // 重构代码
        if let url = status.retweeted_status?.pic_urls ?? status.pic_urls  {
            thumbnailUrl = [NSURL]()
            
            for dict in url {
                
                thumbnailUrl?.append(NSURL(string: dict["thumbnail_pic"]!)!)
            }
            
        }
        
        super.init()
    }
    
    // 行高的缓存
    var rowHeight : CGFloat = 0
    
    // 转发微博的文字拼接
    var forwardText : String{
        
        let userName = status.retweeted_status?.user?.name ?? ""
        let text = status.retweeted_status?.text ?? ""
        
        return "@\(userName):\(text)"
        
    }
    
    // 判断可重用id
    var reuseID : String{
        
        return status.retweeted_status != nil ? statusForwardCellID : statusNormalCellID
    }
    override var description : String{
        
        return status.description
    }
    
}
